The use of a touch input device disposed over the viewing surface of a computer display to provide a "user friendly" means for the control of a data processing system is well known in the art. U.S. Pat. No. 5,025,411 to Tallman et al. discloses a typical input device in the form of a touch screen used to control the operation of a digital oscilloscope. U.S. Pat. No. 4,587,630 to Straton et al. discloses a programmable touch screen emulating a keyboard input device. U.S. Pat. No. 4,903,012 to Ohuchi discloses a touch screen for calibrating the coordinates of a computer system. Such devices are designed to allow an unsophisticated user to perform desired tasks on a computer system without extensive training. Human factor studies have shown that an input device which allows the user to input data directly on the computer display achieves greatest immediacy and accuracy between man and machine.
In current graphical user interfaces developed to aid man-machine interaction, there are many items, such as menu selections, icons or windows, which a user can most easily select by using a mouse or a finger. U.S. Pat. No. 4,886,941 to Davis et al. and Japanese Publications Nos. 62-80724 and 63-311426 describe prior art systems employing mouse-pointing devices as input devices for data processing systems. Some advanced softward applications allow a user to input complex control signals with a finger. U.S. Pat. No. 4,899,138 to Araki et al., for example, discloses a touch panel for providing control signals in accordance with the manner in which a finger touches the panel within a predetermined period of time (i.e., making a gesture).
A stylus has proven to be more effective in inputting information on a touch sensitive input device because of its greater precision. It is more convenient to utilize a touch input system which allows both a stylus and a finger to operate as input devices. One such system is described in commonly assigned U.S. Pat. No. 4,686,332 to Greanias et al., entitled "Combined Finger Touch and Stylus Detection System for Use on the Viewing Surface of a Visual Display Device," and which is hereby expressly incorporated herein by reference.
In a touch input device (e.g., a touch workpad) for a data processing system, where a touch sensor is disposed over a viewing surface of a display, input signals generated from a pointing device, such as a stylus or finger, can be categorized either as a mouse input signal or as a gesture or handwriting input signal. Where such input signals are intended to emulate the behavior of a mouse and represent commands, such as mouse button down and mouse button up, the stylus or finger is respectively touched down and lifted off the surface. Where the input device allows the user to use a stylus and touch sensor to simulate pen and paper to create a handwriting input signal, alphanumeric characters can be entered into an appropriate application program. Where the input signal is part of a gesture, a series of such input signals resembling a geometric figure, such as a circle, a right-hand or a left-hand arrow, are indicative of an action to be taken by the computer system. As all three types of input signals may be emulated by the use of a stylus or finger as a touch input device, it would be advantageous to design a stylus- or finger-based operating system such that all three types of input signals may be simultaneously entered anywhere on the display.
In order to utilize all three types of input signals, they must be distinguished by the data processing system. One method of differentiating between the types of input signals is by timing. If the user, after initiating contact between a pointing device and the touch sensor, moves the pointing device to a desired position and stops motion for a predetermined time period without losing contact between the device and the touch sensor (hereinafter referred to as "lift-off"), the operating system will recognize an input signal at the desired position as a mouse command. For example, if the user stops moving the pointing device at a given position for 200 milliseconds, a mouse command at the given position is recognized. If, on the other hand, the user does not stop at any given position for the specified time delay period and instead lifts off the touch sensor, the input signals are selected as candidates for character or gesture recognition instead of mouse commands.
To detect the cessation of motion at a desired position, the operating system repeatedly resets a delay software timer each time a position point identified by an input signal generated by the pointing device is sufficiently offset from a previous position point. Repeatedly resetting the timer in this manner creates a large amount of processing overhead when the cessation detection is required in a multi-tasking system.
A multi-tasking computer system creates the illusion of concurrently running a plurality of computer processes, also known as jobs, tasks or threads. To create this illusion, an operating system switches a single processor between multiple threads. A timer thread is dedicated to managing the software timer. The timer thread cannot reset the timer until the processor saves all computations made while executing the current thread and switches back to the timer thread. As a result, a large amount of processing time is required to repeatedly reset the above-described timer.